home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 December / EnigmA AMIGA RUN 13 (1996)(G.R. Edizioni)(IT)[!][issue 1996-12][PLANET CD III].iso / enigma / earcd / unix / uae-0_64.lha / uae-0.6.4 / amiga / source / uaectrl.c < prev   
C/C++ Source or Header  |  1996-07-23  |  5KB  |  183 lines

  1. /***********************************************************
  2.  * UAE - The U*nix Amiga Emulator                          *
  3.  *                                                         *
  4.  * UAE-Ctrl -- Emulator Control from Inside Emulation      *
  5.  *  (c) 1996 Tauno Taipaleenmaki <tataipal@raita.oulu.fi>  *
  6.  *                                                         *
  7.  * Version 0.1                                             *
  8.  *                                                         *
  9.  * Command line version, Should work with any KS version   *
  10.  *                                                         *
  11.  ***********************************************************/
  12. #include <proto/exec.h>
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <ctype.h>
  16. #include <string.h>
  17. #include "uae-control.h"
  18. #include "uae_pragmas.h"
  19.  
  20. #define MAX_DRV_NAME          20
  21.  
  22.      struct Library              *UaeBase;
  23.  
  24. struct UAE_CONFIG      config;
  25.  
  26. void print_drive_status(void);
  27. void quit_program(int error, char *text);
  28.  
  29. /************************************
  30.  * Main program                     *
  31.  ************************************/
  32. int main()
  33. {
  34.        int                  quit = 0,i, correct,number;
  35.        char                 buf[257];
  36.        char                 *langs[]={
  37.           "US\0","DE\0","SE\0","FR\0","IT\0", 
  38.        };
  39.  
  40.        UaeBase = OpenLibrary("uae.library",0);
  41.        if (!UaeBase) {
  42.           UaeBase = OpenLibrary("uae.library",0);
  43.           if (!UaeBase) {
  44.              quit_program(1, "Emulator not running or uae.library not installed.\n");
  45.              return(1);
  46.           }
  47.        }
  48. /* Read UAE configuration */
  49.        i = GetUaeConfig( &config );
  50.  
  51.        while( quit == 0 ) {
  52.           printf(" UAE-Control v0.1\n\n");
  53.           printf(" 1) Reset\n");
  54.           printf(" 2) Debug\n");
  55.           printf(" 3) Exit Emulator\n");
  56.           printf(" 4) Change framerate     (Currently : %ld)\n", config.framerate);
  57.           printf(" 5) Toggle sound         (Currently : %s)\n", config.do_output_sound ? "ON" : "OFF");
  58.           printf(" 6) Toggle fake joystick (Currently : %s)\n", config.do_fake_joystick ? "ON" : "OFF");
  59.           printf(" 7) Change language      (Currently : %s)\n", langs[config.keyboard]);
  60.           printf(" 8) Eject a disk\n");
  61.           printf(" 9) Insert a disk\n");
  62.           printf("10) Exit UAE-Control\n\n");
  63.           correct = 0;
  64.           while( correct == 0 ) {
  65.              printf(" Command : ");
  66.              gets( buf );
  67.              i = atoi( buf );
  68.              if ((i > 0) && (i < 11))
  69.                correct = 1;
  70.           }
  71.           switch( i ) {
  72.            case 1:
  73.              printf("\n The reset function does not work correctly yet.\n");
  74.              break;
  75.            case 2:
  76.              DebugFunc();
  77.              break;
  78.            case 3:
  79.              ExitEmu();
  80.              break;
  81.            case 4:
  82.              printf(" Enter new framerate (1-20) :");
  83.              gets( buf );
  84.              number = atoi( buf );
  85.              if ((number > 0) && (number < 21)) {
  86.                 SetFrameRate( number );
  87.                 GetUaeConfig( &config );
  88.               } else {
  89.                 printf(" Illegal value, not changed.\n");
  90.              }
  91.              break;
  92.            case 5:
  93.              if (config.do_output_sound)                
  94.                DisableSound();
  95.              else
  96.                EnableSound();
  97.              GetUaeConfig( &config );
  98.              break;
  99.            case 6:
  100.              if (config.do_fake_joystick)
  101.                DisableJoystick();
  102.              else
  103.                EnableJoystick();
  104.              GetUaeConfig( &config );
  105.              break;
  106.            case 7:
  107.              printf(" 1 = US, 2 = DE, 3 = SE, 4 = FR, 5 = IT\n");
  108.              printf(" What will it be : ");
  109.              gets( buf );
  110.              number = atoi( buf );
  111.              if ((number >= 1) && (number <= 5)) {
  112.                 ChangeLanguage( number-1 );
  113.                 GetUaeConfig( &config );
  114.              } else {
  115.                 printf(" Illegal value, not changed.\n");
  116.              }
  117.              break;
  118.            case 8:
  119.              print_drive_status();
  120.              printf(" Eject which drive (1-4): ");
  121.              gets( buf );
  122.              number = atoi( buf );
  123.              if ((number >= 1) && (number <=4 )) {
  124.                 EjectDisk( number-1 );
  125.                 GetUaeConfig( &config );
  126.              } else {
  127.                 printf(" Illegal drive, not changed.\n");
  128.              }
  129.              break;
  130.            case 9:
  131.              print_drive_status();
  132.              printf(" Enter disk to drive (1-4): ");
  133.              gets( buf );
  134.              number = atoi( buf ); 
  135.              if ((number >= 1) && (number <= 4)) {
  136.                 printf("Name of diskfile :");
  137.                 gets( buf );
  138.                 InsertDisk( (UBYTE *)&buf, number - 1 );
  139.                 GetUaeConfig( &config );
  140.              } else {
  141.                 printf(" Illegal drive, not changed.\n");
  142.              }
  143.              break;
  144.            case 10:
  145.              quit = 1;
  146.              break;
  147.           }
  148.        }
  149.        quit_program(0, "");
  150.        return(0);
  151. }
  152.  
  153. /******************************************
  154.  * Prints drive status                    *
  155.  ******************************************/
  156. void print_drive_status(void)
  157. {          
  158.        printf(" DF0 : %s\n", config.disk_in_df0 ? config.df0_name : "EMPTY");
  159.        printf(" DF1 : %s\n", config.disk_in_df1 ? config.df1_name : "EMPTY");
  160.        printf(" DF2 : %s\n", config.disk_in_df2 ? config.df2_name : "EMPTY");
  161.        printf(" DF3 : %s\n", config.disk_in_df3 ? config.df3_name : "EMPTY");
  162. }
  163.        
  164.        
  165.        
  166.           
  167. /******************************************
  168.  * Quits the program                      *
  169.  ******************************************/
  170. void quit_program(int error, char *text)
  171. {
  172.        if (error > 0) {
  173.           printf(" UAE-Control v0.1\n");
  174.           printf("  (c)1996 Tauno Taipaleenmaki\n\n");
  175.           printf(" ERROR: %s\n", text);
  176.        }
  177.        if (UaeBase)
  178.      CloseLibrary( UaeBase );
  179. }
  180.  
  181.  
  182.  
  183.